package com.cskaoyan.service;

import com.cskaoyan.exception.CouponEmptyException;
import com.cskaoyan.exception.CouponReceiveException;
import com.cskaoyan.model.bean.Coupon;
import com.cskaoyan.model.bo.extend.CouponBo;
import com.cskaoyan.model.bo.extend.ListUserBo;
import com.cskaoyan.model.bo.extend.WXCouponBo;
import com.cskaoyan.model.bo.extend.WXCouponSelectBo;
import com.cskaoyan.model.vo.extend.CouponUserVo;
import com.cskaoyan.model.vo.extend.CouponVo;
import com.cskaoyan.model.vo.extend.WXCouponVo;

import java.util.List;

/**
 * @Author：Chunk
 * @Description:
 * @Date Created in 17:13 2021/4/9
 */
public interface CouponService {
    CouponVo queryCouponList(CouponBo couponBo);

    Coupon update(Coupon coupon);

    void delete(Coupon coupon);

    Coupon create(Coupon coupon);

    Coupon queryById(Integer id);

    CouponUserVo queryListUser(ListUserBo listUserBo);

    WXCouponVo queryWXCouponList(WXCouponBo wxCouponBo);

    List<Coupon> selectWXCouponList(WXCouponSelectBo wxCouponSelectBo);

    void receiveWXCoupon(Integer id) throws CouponReceiveException, CouponEmptyException;

    WXCouponVo queryWXMyCouponList(WXCouponBo wxCouponBo);

    void exchangeWXCoupon(String code) throws CouponReceiveException, CouponEmptyException;
}
